package cn.yunhe.server;

import cn.yunhe.dao.ILocationDao;
import cn.yunhe.entity.Location;
import cn.yunhe.util.SqlSessionFactoryUtil;
import org.apache.ibatis.session.SqlSession;

public class LocationDaoServer {

    /**
     * 向数据库插入地址信息
     * @param location 新建的地址对象
     * @return 插入结果
     */
    public boolean insertLocation(Location location){
        SqlSession session = SqlSessionFactoryUtil.getSqlSession();
        ILocationDao locationDao = session.getMapper(ILocationDao.class);
        try {
            boolean flag = locationDao.insertLocation(location); //执行插入方法,若返回true说明插入成功
            if (flag){ //插入成功则提交事务true,否则,直接返回false
                session.commit();
                return true;
            }else {
                return false;
            }
        }catch (Exception e){
            return false;
        }finally {
            if (session != null){
                session.close();
            }
        }
    }

    /**
     * 通过新建的地址对象查询该对象属性在数据库中是否存在,若存在则返回一个新的地址对象
     * @param location 新建的地址对象
     * @return 新的地址对象(若该值为空,则说明新建的地址对象在数据库中不存在)
     */
    public Location getLocation(Location location){
        SqlSession session = SqlSessionFactoryUtil.getSqlSession();
        ILocationDao locationDao = session.getMapper(ILocationDao.class);
        try {
            return locationDao.getLocation(location); //执行获取地址对象方法
        }catch (Exception e){
            return null;
        }finally {
            if (session != null){
                session.close();
            }
        }
    }

}
